package com.aloha.springframework.beans.factory;

import com.aloha.springframework.beans.BeansException;
import com.aloha.springframework.beans.factory.config.AutowireCapableBeanFactory;
import com.aloha.springframework.beans.factory.config.BeanDefinition;
import com.aloha.springframework.beans.factory.config.ConfigurableBeanFactory;

/**
 * @author DaiZhiHeng
 * @description 这个接口的父接口有多个，相当于是一个复合的接口拥有众多的能力
 * @date 2023/7/1 20:59
 */
public interface ConfigurableListableBeanFactory
        extends ListableBeanFactory, ConfigurableBeanFactory, AutowireCapableBeanFactory {

    /**
     * 根据BeanName获取Bean定义信息
     */
    BeanDefinition getBeanDefinition(String beanName) throws BeansException;

    /**
     * 预先实例化单例对象
     */
    void preInstantiateSingletons() throws BeansException;

}
